package bai.myworld.common.utils;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

// 统一响应结果
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Result<T> {
    private Integer code;    // 业务状态码 0-成功 1-失败
    private String message;  // 提示信息
    private T data;          // 响应数据

    // 快速返回操作成功响应结果(带响应数据)
    public static <E> Result<E> success(E data) {
        return new Result<>(0, "操作成功", data);
    }

    // 快速返回操作成功响应结果(无数据)
    public static Result<Void> success() {
        return new Result<Void>(0, "操作成功", null);
    }

    // 快速返回操作失败响应结果
    public static <E> Result<E> error(Integer code, String message) {
        return new Result<E>(code, message, null);
    }

    // 带自定义消息的成功响应
    public static <E> Result<E> success(E data, String message) {
        return new Result<E>(0, message, data);
    }
}
